Generic Object Services
Das Ablegen von Anhängen an SAP-Standardtransaktionen hat sich zu Release 4.70 komplett geändert. Konnte man vorher die Anhänge mit dem Funktionsbaustein SREL_GET_NEXT_RELATIONS lesen, ist zu 4.70 eine andere Vorgehensweise vonnöten.
In den meisten SAP-Standardtransaktionen können Anhänge angefügt werden. Dazu geht man unter Menü “System – Verknüpfungen” und kann Notizen, Bilder oder andere Dateien zuordnen.
Gelesen werden diese im Release 4.5 z.B. mit dem Funktionsbaustein SREL_GET_NEXT_RELATIONS:
*** Anhänge zur Qualitätsmeldung lesen gs_objects-objkey = gv_qmnum. gs_objects-objtype = 'BUS2078'. "Q-Meldung CALL FUNCTION 'SREL_GET_NEXT_RELATIONS' EXPORTING object = gs_objects TABLES links = gt_links roles = gt_roles EXCEPTIONS internal_error = 1 OTHERS = 2.
Ab Release 4.70 (oder 4.6) erhält man aber keine Ergebnisse, wenn die Anhänge über den sogenannten “Generischen Objektdienst” (GOS) gespeichert wurden.
Siehe Hierzu auch den Artikel “Generic Object Services“.
Die Anhänge müssen nun wie folgt ermittelt werden (Anregung aus dem OSS-Hinweis “632997 Belegfluß: Anlagen, Notizen, URLs nicht angezeigt”):
DATA: l_sysid LIKE tbdls-logsys. DATA: lt_relation_options TYPE obl_t_relt. DATA: ls_relation_options TYPE obl_s_relt. DATA: l_object TYPE sibflporb. DATA: lt_links TYPE obl_t_link. DATA: ls_links TYPE obl_s_link. DATA: lt_roles TYPE obl_t_role. DATA: ls_roles TYPE obl_s_role. *--- Beschaffung der "Logischen System-ID" für F-Leiste L_BORIDENT CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET' IMPORTING own_logical_system = l_sysid EXCEPTIONS own_logical_system_not_defined = 0. *--- Ermitteln der Verknüpfungen, die über die neue Technik zugeordnet *--- wurden GOS Attachments, URLs und Notizen l_object-typeid = 'BUS2078'. l_object-instid = p_qmnum. l_object-catid = 'BO'. ls_relation_options-sign = 'I'. ls_relation_options-option = 'EQ'. ls_relation_options-low = 'ATTA'. APPEND ls_relation_options TO lt_relation_options. ls_relation_options-low = 'NOTE'. APPEND ls_relation_options TO lt_relation_options. ls_relation_options-low = 'URL'. APPEND ls_relation_options TO lt_relation_options. TRY. *--- Lesen der Verknüpften Objekte CALL METHOD cl_binary_relation=>read_links_of_binrels EXPORTING is_object = l_object ip_logsys = l_sysid it_relation_options = lt_relation_options IMPORTING et_links = lt_links et_roles = lt_roles. CATCH cx_obl_parameter_error . CATCH cx_obl_internal_error . CATCH cx_obl_model_error . ENDTRY.
Weiterführende Infos
Hilfreich ist eventuell auch die Klasse CL_ATTACHMENT_LIST.
Mithilfe des Funktionsbausteins BDS_ALL_CONNECTIONS_GET kann ermittelt werden, wieviele Dokumente vorhanden sind.
Weitere Doku im SDN “HOW TO ATTACH DOCUMENTS TO ANY CUSTOM PROGRAM USING GENERIC OBJECT SERVICES”: http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/0e6b0d95-0a01-0010-4696-ca0a48de5fb3
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024